/**
 * components util
 */

/**
 * 清理空值，对象
 * @param children
 * @returns {*[]}
 */
 export function filterEmpty (children = []) {
    return children.filter(c => c.tag || (c.text && c.text.trim() !== ''))
  }

  /**
   * 获取字符串长度，英文字符 长度1，中文字符长度2
   * @param {*} str
   */
  export const getStrFullLength = (str = '') =>
    str.split('').reduce((pre, cur) => {
      const charCode = cur.charCodeAt(0)
      if (charCode >= 0 && charCode <= 128) {
        return pre + 1
      }
      return pre + 2
    }, 0)

  /**
   * 截取字符串，根据 maxLength 截取后返回
   * @param {*} str
   * @param {*} maxLength
   */
  export const cutStrByFullLength = (str = '', maxLength) => {
    let showLength = 0
    return str.split('').reduce((pre, cur) => {
      const charCode = cur.charCodeAt(0)
      if (charCode >= 0 && charCode <= 128) {
        showLength += 1
      } else {
        showLength += 2
      }
      if (showLength <= maxLength) {
        return pre + cur
      }
      return pre
    }, '')
  }
